package com.zzyl.nursing.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.time.LocalDateTime;

/**
 * 新增预约请求DTO
 */
@Data
public class ReservationAddDTO {

    /**
     * 手机号（必填，11位数字）
     */
    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String mobile;

    /**
     * 预约人姓名（必填，1-20个字符）
     */
    @NotBlank(message = "预约人姓名不能为空")
    @Length(min = 1, max = 20, message = "预约人姓名长度不能超过20个字符")
    private String name;

    @NotNull(message = "预约时间不能为空")
    // 关键：添加此注解，指定JSON时间字符串的格式
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime time;

    /**
     * 预约类型（必填，0=参观预约）
     */
    @NotNull(message = "预约类型不能为空")
    private Integer type;

    /**
     * 家人姓名（老人姓名，必填）
     */
    @NotBlank(message = "家人姓名不能为空")
    @Length(min = 1, max = 20, message = "家人姓名长度不能超过20个字符")
    private String visitor;

}